class_name DataItem_GD
extends Resource

## 数据项，记录数据的当前值，以及可以取到的最大值和最小值
## 对数据进行修改后，方便对数据进行复原


@export var min_val: float
@export var max_val: float
@export var value: float:
    set(val):
        val = clamp(val, min_val, max_val)
        if is_equal_approx(value, val): return

        var old := value
        value = val
        value_changed.emit(old, value)

signal value_changed(ov: float, nv: float)


func _init(min_: float, max_: float, val: float) -> void:
    min_val = min_
    max_val = max_
    value = val